/**
 * <pre>
 * Title: 		TransMessage.java
 * Project: 	HP-Common
 * Author:		linriqing
 * Create:	 	2008-8-28 下午05:42:38
 * Copyright: 	Copyright (c) 2008
 * Company:
 * <pre>
 */
package com.hengpeng.itfinbase.message;

import java.io.Serializable;

import com.hengpeng.common.util.ObjectHelper;

/**
 * <pre>
 * 业务系统请求/响应的消息包
 * 对于不同类型的请求/响应（比如投注和奖期查询），消息头的格式是相同的，而消息体会携带具体的特定类型的请求/响应信息.
 * </pre>
 * 
 * @author linriqing
 * @version 1.0, 2008-8-28
 */
public abstract class TransMessage implements Serializable, Cloneable {
    private static final long serialVersionUID = 1254606653073562705L;

    /**
     * 客户端编号
     */
    private String clientId;

    /**
     * 请求消息流水号, 规则:yyyyMMddHHmmss+6位循环流水号
     */
    private String id;

    private String domain;

    /**
     * 交易类型
     */
    private int transType;

    public Object clone() throws CloneNotSupportedException {
        return ObjectHelper.byteClone(this);
    }

    public String getDomain() {
        return domain;
    }

    public void setDomain(String domain) {
        this.domain = domain;
    }

    /**
     * @return 客户端编号
     */
    public String getClientId() {
        return clientId;
    }

    /**
     * @return 请求消息流水号, 规则:yyyyMMddHHmmss+6位循环流水号
     */
    public String getId() {
        return id;
    }

    /**
     * @return 交易类型
     */
    public int getTransType() {
        return transType;
    }

    /**
     * @param clientId
     *            客户端编号
     */
    public void setClientId(String clientId) {
        this.clientId = clientId;
    }

    /**
     * @param id
     *            请求消息流水号, 规则:yyyyMMddHHmmss+6位循环流水号
     */
    public void setId(String id) {
        this.id = id;
    }

    /**
     * @param transType
     *            交易类型
     */
    public void setTransType(int transType) {
        this.transType = transType;
    }
}
